/*
 * AcessOS Version 1
 * USB Stack
 */
#ifndef _DRV_USB_H
#define _DRV_USB_H

// === TYPES ===
typedef struct {
	void	*impl;
	 int	(*send)(int id, int type, char *data);
} tUSB_Host;

typedef struct {
	tUSB_Host	*host;
	 int	ID;
	 int	Class;
} tUSB_Device;

// === CONSTANTS ===
/**
 * \enum ePackTypes
 */
enum ePackTypes {
	PACK_NULL,
	PACK_OUTTOK,	// Out Token
	PACK_ACK,	// ACK
	PACK_DATA0,
	PACK_PING,	// Ping
	PACK_SOF,	// Start of Frame
	PACK_NYET,	// No Response Yet
	PACK_DATA2,
	PACK_SPLIT,
	PACK_INTOK,	// IN Token
	PACK_NAK,	// Not ACK
	PACK_DATA1,
	PACK_ERR,	// Error / Preamble
	PACK_SETUP,	// SETUP Token
	PACK_STALL,	// STALL Handshake
	PACK_MDATA
	
};

#endif
